package br.gov.mi.corporativo.dominio.boundary.comum.pessoajuridica;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import br.gov.mi.corporativo.dominio.entidade.comum.PessoaJuridica;


@Path("pessoajuridica")
public class PessoaJuridicaRestAdapter extends SpringBeanAutowiringSupport {


	@Autowired
	private PessoaJuridicaEndPoint service;
	
	@GET
	@Produces({MediaType.APPLICATION_JSON})
	public Iterable<PessoaJuridica> recuperarTodos(){
		return service.recuperarTodos();
	}
	
	@GET
	@Path("id/{idPessoaJuridica}")
	@Produces({MediaType.APPLICATION_JSON})
	public PessoaJuridica recuperarPorIdPessoaJuridica(@PathParam("idPessoaJuridica")Long idPessoaJuridica){
		return service.recuperarPorIdPessoaJuridica(idPessoaJuridica);
	}
	
	@GET
	@Path("ramo/{ramoAtividade}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaJuridica> recuperarPorRamoAtividade(@PathParam("ramoAtividade")Long ramoAtividade){
		return service.recuperarPorRamoAtividade(ramoAtividade);
	}
	
	@GET
	@Path("pessoa/{pessoa}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaJuridica> recuperarPorPessoa(@PathParam("pessoa")Long pessoa){
		return service.recuperarPorPessoa(pessoa);
	}
	
	@GET
	@Path("razaosocial/{nmRazaoSocial}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaJuridica> recuperarPorNmRazaoSocial(@PathParam("nmRazaoSocial")String nmRazaoSocial){
		return service.recuperarPorNmRazaoSocial(nmRazaoSocial);
	}
	
	@GET
	@Path("nomefantasia/{nmFantasia}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaJuridica> recuperarPorNmFantasia(@PathParam("nmFantasia")String nmFantasia){
		return service.recuperarPorNmFantasia(nmFantasia);
	}
	
}
